package com.longjianghuasheng.logistics.ext

import androidx.fragment.app.Fragment
import com.blankj.utilcode.constant.PermissionConstants
import com.blankj.utilcode.util.PermissionUtils
import com.hjq.permissions.OnPermissionCallback
import com.hjq.permissions.Permission
import com.hjq.permissions.XXPermissions


inline fun requestLocationPermission(crossinline block: () -> Unit) {
    PermissionUtils.permission(PermissionConstants.LOCATION)
        .rationale { activity, shouldRequest ->
            toastNormal("请打开定位权限")
        }
        .callback { isAllGranted, granted, deniedForever, denied ->

            if (isAllGranted) {
                block.invoke()
            }

        }
        .request()

}

fun Fragment.filePermission(block: () -> Unit) {
    XXPermissions.with(this)
        // 申请单个权限
        .permission(Permission.MANAGE_EXTERNAL_STORAGE)
        // 申请多个权限
//                        .permission(Permission.Group.STORAGE)
        // 设置权限请求拦截器（局部设置）
        //.interceptor(new PermissionInterceptor())
        // 设置不触发错误检测机制（局部设置）
        //.unchecked()
        .request(object : OnPermissionCallback {

            override fun onGranted(permissions: MutableList<String>, all: Boolean) {
                if (all) {
                    //                            toastNormal("获取文件访问权限成功")
                    block.invoke()
                } else {
                    toastNormal("获取部分权限成功，但部分权限未正常授予")
                }
            }

            override fun onDenied(permissions: MutableList<String>, never: Boolean) {
                if (never) {
                    toastNormal("被永久拒绝授权，请手动授予文件文件访问权限")
                    // 如果是被永久拒绝就跳转到应用权限系统设置页面
                    XXPermissions.startPermissionActivity(context, permissions)
                } else {
                    toastNormal("获取文件访问限失败")
                }
            }
        })
}